#include "file_manager.h"

// 全局变量定义
LockedFile locked_files[MAX_LOCKED_FILES];
int num_locked_files = 0;

int main(int argc, char *argv[]) {
    // 如果有命令行参数，直接执行命令
    if (argc > 1) {
        // 从argv[1]开始，跳过程序名
        execute_command(&argv[1], argc - 1);
        return 0;
    }
    
    // 没有命令行参数，使用交互式模式
    char command[MAX_COMMAND_LENGTH];
    char *args[MAX_ARGS];
    int arg_count;
    
    printf("欢迎使用简化版文件管理器\n");
    printf("这是一个用于学习基础文件系统和文件IO操作的工具\n");
    printf("输入 'help' 查看可用命令\n\n");
    
    while (1) {
        show_prompt();
        
        // 获取用户输入
        if (fgets(command, MAX_COMMAND_LENGTH, stdin) == NULL) {
            break;
        }
        
        // 去除换行符
        command[strcspn(command, "\n")] = '\0';
        
        // 解析命令
        parse_command(command, args, &arg_count);
        
        if (arg_count == 0) {
            continue;
        }
        
        // 执行命令
        if (execute_command(args, arg_count) == -1) {
            break;
        }
    }
    
    // 清理所有保持锁定的文件
    cleanup_locked_files();
    
    printf("谢谢使用，再见！\n");
    return 0;
}